package StringTest;

import java.util.Random;

public class Test5 {
    public static void main(String[] args) {

         /*   需求：
            定义方法实现随机产生一个5位的验证码
            验证码格式：
            长度为5
            前四位是大写字母或者小写字母
            最后一位是数字
     */

        //方法：
        //在以后如果我们要在一堆没有什么规律的数据中随机抽取
        //可以先把这些数据放到数组当中
        //再随机抽取一个索引

        //1.大写字母和小写字母都放到数组当中
        char[] arr = new char[52];
        for (int i = 0; i < arr.length; i++) {
            if (i <= 25) {
                arr[i] = (char) ('a' + i);
            } else {
                arr[i] = (char) ('A' + i - 26);
            }
        }
        //2.随机抽取4次
        //        //随机抽取数组中的索引
        Random r = new Random();
        String str = "";
        for (int i = 0; i < 4; i++) {
            int index = r.nextInt(arr.length);
            str += arr[index];
        }

         //3.随机抽取一个数字0~9
        int index_number = r.nextInt(10);
        str += index_number;

        //4.变成字符数组打乱数据
        char[]arr2 = str.toCharArray();
        //将数组里面的内容打乱
        for (int i = 0; i < arr2.length; i++) {
            int index = r.nextInt(arr2.length);
            char tmp = arr2[index];
            arr2[index] = arr2[i];
            arr2[i] = tmp;
        }
        //将字符数组再变回字符串
        String result = new String(arr2);
        System.out.println(result);

    }
}
